load("@fbsource//tools/build_defs:rust_binary.bzl", "rust_binary")

oncall("scm_server_infra")

rust_binary(
    name = "walker",
    srcs = glob([
        "src/**/*.rs",
        "schemas/**/*.sql",
    ]),
    test_deps = [
        "//common/rust/shed/fbinit:fbinit-tokio",
        "//eden/mononoke/mononoke_macros:mononoke_macros",
        "//eden/mononoke/repo_factory:test_repo_factory",
    ],
    deps = [
        "fbsource//third-party/rust:ahash",
        "fbsource//third-party/rust:anyhow",
        "fbsource//third-party/rust:array-init",
        "fbsource//third-party/rust:async-trait",
        "fbsource//third-party/rust:auto_impl",
        "fbsource//third-party/rust:bitflags",
        "fbsource//third-party/rust:bytes",
        "fbsource//third-party/rust:clap",
        "fbsource//third-party/rust:dashmap",
        "fbsource//third-party/rust:derive_more",
        "fbsource//third-party/rust:filetime",
        "fbsource//third-party/rust:futures",
        "fbsource//third-party/rust:hex",
        "fbsource//third-party/rust:internment",
        "fbsource//third-party/rust:itertools",
        "fbsource//third-party/rust:maplit",
        "fbsource//third-party/rust:once_cell",
        "fbsource//third-party/rust:paste",
        "fbsource//third-party/rust:percent-encoding",
        "fbsource//third-party/rust:regex",
        "fbsource//third-party/rust:strum",
        "fbsource//third-party/rust:thiserror",
        "fbsource//third-party/rust:tokio",
        "fbsource//third-party/rust:tracing",
        "fbsource//third-party/rust:zstd",
        "//common/rust/shed/bounded_traversal:bounded_traversal",
        "//common/rust/shed/cloned:cloned",
        "//common/rust/shed/facet:facet",
        "//common/rust/shed/fbinit:fbinit",
        "//common/rust/shed/hash_memo:hash_memo",
        "//common/rust/shed/scuba_stub:scuba",
        "//common/rust/shed/stats:stats",
        "//eden/mononoke/blobrepo:blobrepo_hg",
        "//eden/mononoke/blobstore:blobstore",
        "//eden/mononoke/blobstore:blobstore_factory",
        "//eden/mononoke/blobstore:multiplexedblob",
        "//eden/mononoke/blobstore:samplingblob",
        "//eden/mononoke/cmdlib/caching:cmdlib_caching",
        "//eden/mononoke/cmdlib/mononoke_app:mononoke_app",
        "//eden/mononoke/cmdlib/scrubbing:cmdlib_scrubbing",
        "//eden/mononoke/cmdlib/sharding:executor_lib",
        "//eden/mononoke/cmdlib/sharding_ext:sharding_ext",
        "//eden/mononoke/common/rust/sql_ext:sql_ext",
        "//eden/mononoke/common/scuba_ext:scuba_ext",
        "//eden/mononoke/common/sql_construct:sql_construct",
        "//eden/mononoke/common/yield_stream:yield_stream",
        "//eden/mononoke/derived_data:blame",
        "//eden/mononoke/derived_data:changeset_info",
        "//eden/mononoke/derived_data:deleted_manifest",
        "//eden/mononoke/derived_data:derived_data_manager",
        "//eden/mononoke/derived_data:fastlog",
        "//eden/mononoke/derived_data:fsnodes",
        "//eden/mononoke/derived_data:skeleton_manifest",
        "//eden/mononoke/derived_data:unodes",
        "//eden/mononoke/derived_data/filenodes_derivation:filenodes_derivation",
        "//eden/mononoke/derived_data/mercurial_derivation:mercurial_derivation",
        "//eden/mononoke/manifest:manifest",
        "//eden/mononoke/mercurial:mercurial_types",
        "//eden/mononoke/metaconfig:metaconfig_types",
        "//eden/mononoke/mononoke_macros:mononoke_macros",
        "//eden/mononoke/mononoke_types:mononoke_types",
        "//eden/mononoke/repo_attributes/bonsai_hg_mapping:bonsai_hg_mapping",
        "//eden/mononoke/repo_attributes/bookmarks:bookmarks",
        "//eden/mononoke/repo_attributes/commit_graph/commit_graph:commit_graph",
        "//eden/mononoke/repo_attributes/commit_graph/sql_commit_graph_storage:sql_commit_graph_storage",
        "//eden/mononoke/repo_attributes/filenodes:filenodes",
        "//eden/mononoke/repo_attributes/filestore:filestore",
        "//eden/mononoke/repo_attributes/newfilenodes:newfilenodes",
        "//eden/mononoke/repo_attributes/phases:phases",
        "//eden/mononoke/repo_attributes/repo_blobstore:repo_blobstore",
        "//eden/mononoke/repo_attributes/repo_derived_data:repo_derived_data",
        "//eden/mononoke/repo_attributes/repo_identity:repo_identity",
        "//eden/mononoke/repo_factory:repo_factory",
        "//eden/mononoke/server/context:context",
        "//eden/scm/lib/clientinfo:clientinfo",
    ],
)
